package cn.com.huzo.model.entities.master;

import huzofw.model.entities.BaseEntity;
import huzofw.model.entities.IAggregateRoot;
import java.io.Serializable;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 供应商实体类
 *
 * @author 吴旭
 */
public class SupplierEntity extends BaseEntity implements Serializable, IAggregateRoot {

    private static final long serialVersionUID = -8486137571165022847L;
    private Long SupplierId;
    private Long CatalogueId;           // 所属目录
    private String CatalogueName;
    private String SupplierNo;          // 供应商编码
    private String SupplierName;
    private String ShortName;           // 供应商简称
    private String Country;             // 所属国家
    private String Province;            // 省份
    private String Attn;                // 联系人
    private String AttnTel;
    private String AttnMobil;
    private String AttnJob;
    private String Fax;
    private String Email;
    private String OpenAccountBank;
    private String BankAccount;
    private String TaxNo;                 // 税务登记号
    private Long TaxRateId;               // 税率
    private String TaxRateName;
    private Long SettlementModeId;        // 结算方式
    private String SettlementModeName;
    private String Address;
    private String Description;
    private Long GroupId;                 // 所属权限分组
    private String GroupName;

    // 用于导出excel
    private String FieldsName;
    private String FieldsComment;

    public Long getSupplierId() {
        return SupplierId;
    }

    public Long getCatalogueId() {
        return CatalogueId;
    }

    public String getCatalogueName() {
        return CatalogueName;
    }

    public String getSupplierNo() {
        return SupplierNo;
    }

    public String getSupplierName() {
        return SupplierName;
    }

    public String getShortName() {
        return ShortName;
    }

    public String getCountry() {
        return Country;
    }

    public String getProvince() {
        return Province;
    }

    public String getAttn() {
        return Attn;
    }

    public String getAttnTel() {
        return AttnTel;
    }

    public String getAttnMobil() {
        return AttnMobil;
    }

    public String getAttnJob() {
        return AttnJob;
    }

    public String getFax() {
        return Fax;
    }

    public String getEmail() {
        return Email;
    }

    public String getOpenAccountBank() {
        return OpenAccountBank;
    }

    public String getBankAccount() {
        return BankAccount;
    }

    public String getTaxNo() {
        return TaxNo;
    }

    public Long getTaxRateId() {
        return TaxRateId;
    }

    public String getTaxRateName() {
        return TaxRateName;
    }

    public Long getSettlementModeId() {
        return SettlementModeId;
    }

    public String getSettlementModeName() {
        return SettlementModeName;
    }

    public String getAddress() {
        return Address;
    }

    public String getDescription() {
        return Description;
    }

    public Long getGroupId() {
        return GroupId;
    }

    public String getGroupName() {
        return GroupName;
    }

    public String getFieldsName() {
        return FieldsName;
    }

    public String getFieldsComment() {
        return FieldsComment;
    }

    public void setSupplierId(Long SupplierId) {
        this.SupplierId = SupplierId;
    }

    public void setCatalogueId(Long CatalogueId) {
        this.CatalogueId = CatalogueId;
    }

    public void setCatalogueName(String CatalogueName) {
        this.CatalogueName = CatalogueName;
    }

    public void setSupplierNo(String SupplierNo) {
        this.SupplierNo = SupplierNo;
    }

    public void setSupplierName(String SupplierName) {
        this.SupplierName = SupplierName;
    }

    public void setShortName(String ShortName) {
        this.ShortName = ShortName;
    }

    public void setCountry(String Country) {
        this.Country = Country;
    }

    public void setProvince(String Province) {
        this.Province = Province;
    }

    public void setAttn(String Attn) {
        this.Attn = Attn;
    }

    public void setAttnTel(String AttnTel) {
        this.AttnTel = AttnTel;
    }

    public void setAttnMobil(String AttnMobil) {
        this.AttnMobil = AttnMobil;
    }

    public void setAttnJob(String AttnJob) {
        this.AttnJob = AttnJob;
    }

    public void setFax(String Fax) {
        this.Fax = Fax;
    }

    public void setEmail(String Email) {
        this.Email = Email;
    }

    public void setOpenAccountBank(String OpenAccountBank) {
        this.OpenAccountBank = OpenAccountBank;
    }

    public void setBankAccount(String BankAccount) {
        this.BankAccount = BankAccount;
    }

    public void setTaxNo(String TaxNo) {
        this.TaxNo = TaxNo;
    }

    public void setTaxRateId(Long TaxRateId) {
        this.TaxRateId = TaxRateId;
    }

    public void setTaxRateName(String TaxRateName) {
        this.TaxRateName = TaxRateName;
    }

    public void setSettlementModeId(Long SettlementModeId) {
        this.SettlementModeId = SettlementModeId;
    }

    public void setSettlementModeName(String SettlementModeName) {
        this.SettlementModeName = SettlementModeName;
    }

    public void setAddress(String Address) {
        this.Address = Address;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    public void setGroupId(Long GroupId) {
        this.GroupId = GroupId;
    }

    public void setGroupName(String GroupName) {
        this.GroupName = GroupName;
    }

    public void setFieldsName(String FieldsName) {
        this.FieldsName = FieldsName;
    }

    public void setFieldsComment(String FieldsComment) {
        this.FieldsComment = FieldsComment;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof SupplierEntity)) {
            return false;
        }

        final SupplierEntity that = (SupplierEntity) o;

        return new EqualsBuilder()
                .append(this.getSupplierId(), that.getSupplierId())
                .isEquals();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + this.getSupplierId().hashCode();

        return result;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
